package com.tcloudit.system.mapper;

import com.tcloudit.system.api.domain.CamundaUserPost.PostProcessStatus;
import com.tcloudit.system.domain.SysPostProcess;
import com.tcloudit.system.domain.SysRoleMenu;
import com.tcloudit.system.domain.SysRoleProcess;
import com.tcloudit.system.domain.vo.RoleProcessVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 岗位与流程定义关联表 数据层
 *
 * @author ruoyi
 */
public interface SysRoleProcessMapper
{

    /**
     * 通过角色ID删除关联
     *
     * @param ids 角色ID集合
     * @return 结果
     */
    public int deleteRoleProcessById(Long[] ids);

    /**
     * 通过流程Key删除关联
     *
     * @param processKeys 流程Key集合
     * @return 结果
     */
    public int deleteRoleProcessByKey(String[] processKeys);

    /**
     * 批量新增角色流程信息
     *
     * @param roleProcessList 角色流程列表
     * @return 结果
     */
    public int batchRoleProcess(List<SysRoleProcess> roleProcessList);

    /**
     * 根据流程查找关联的角色
     * @param processKey 流程Key
     * @return 结果
     */
    public List<RoleProcessVo> selectRoleProcessByKey(String processKey);

    /**
     * 获得流程没有关联的角色
     * @param processKey 流程Key
     * @return 结果
     */
    public List<RoleProcessVo> selectRoleProcess(String processKey);

    /**
     * 删除角色与流程关联
     * @param sysRoleProcess 角色Id与流程Key
     * @return 结果
     */
    public int deleteRoleProcess(SysRoleProcess sysRoleProcess);

    /**
     * 根据用户id获取用户能使用的流程
     * @param userId 用户id
     * @return 结果
     */
    public List<String> selectUserIdAuth(String userId);
}
